/* 
 * @Title: XMLDoc.java 
 * @Package com.jiankangjin.weixin.util 
 * @Description: TODO 
 * @author neason
 * @date 2014年7月18日 下午1:33:59 
 * @version V1.0   
 */
package com.jiankangjin.pay.util;

import java.io.IOException;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.Namespace;
import org.jdom2.input.SAXBuilder;
import org.xml.sax.InputSource;

/**
 * 类功能说明 类修改者 修改日期 修改说明
 * <p>
 * Title: XMLDoc.java
 * </p>
 * <p>
 * Description:汉宇信息
 * </p>
 * <p>
 * Copyright: Copyright (c) 2014
 * </p>
 * <p>
 * Company:上海汉宇信息科技
 * </p>
 * 
 * @author neason
 * @date 2014年7月18日 下午1:33:59
 * @version V1.0
 */
public class XMLDoc {
	public Map<String, String> xmlElements(String xmlDoc) {  
        //创建一个新的字符串  
        StringReader read = new StringReader(xmlDoc);  
        //创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入  
        InputSource source = new InputSource(read);  
        //创建一个新的SAXBuilder  
        SAXBuilder sb = new SAXBuilder();  
        Map<String, String> map=new HashMap<String, String>();
        try {  
            //通过输入源构造一个Document  
            Document doc = sb.build(source);  
            //取的根元素  
            Element root = doc.getRootElement();  
            System.out.println(root.getName());//输出根元素的名称（测试）  
            //得到根元素所有子元素的集合  
            List jiedian = root.getChildren();  
            //获得XML中的命名空间（XML中未定义可不写）  
            Namespace ns = root.getNamespace();  
            Element et = null;  
            for(int i=0;i<jiedian.size();i++){  
            	et = (Element)jiedian.get(i);  
            	map.put(et.getName(), et.getText());
            	System.out.println(et.getName()+":"+et.getText());
            }  
        } catch (JDOMException e) {  
            // TODO 自动生成 catch 块  
            e.printStackTrace();  
        } catch (IOException e) {  
            // TODO 自动生成 catch 块  
            e.printStackTrace();  
        }  
        return map;  
    }   
	
	
//	<OpenId><![CDATA[111222]]></OpenId>
//	 <AppId><![CDATA[wwwwb4f85f3a797777]]></AppId>
//	 <IsSubscribe>1</IsSubscribe>
//	 <TimeStamp> 1369743511</TimeStamp>
//	 <NonceStr><![CDATA[jALldRTHAFd5Tgs5]]></NonceStr>
//	 <AppSignature><![CDATA[bafe07f060f22dcda0bfdb4b5ff756f973aecffa]]>
//	 </AppSignature>
//	 <SignMethod><![CDATA[sha1]]></ SignMethod >
	
	
	public static void main(String[] args){
		XMLDoc doc = new XMLDoc();
        String xml = "<?xml version=\"1.0\" encoding=\"gb2312\"?>"+
        "<xml>"+
           	"<OpenId><![CDATA[111222]]></OpenId>"+
              "<AppId><![CDATA[wwwwb4f85f3a797777]]></AppId>"+
              "<IsSubscribe>1</IsSubscribe>"+
              "<TimeStamp>1369743511</TimeStamp>"+
              "<NonceStr><![CDATA[jALldRTHAFd5Tgs5]]></NonceStr>"+
              "<AppSignature><![CDATA[bafe07f060f22dcda0bfdb4b5ff756f973aecffa]]></AppSignature>"+
              "<SignMethod><![CDATA[sha1]]></SignMethod>"+
        "</xml>";
        doc.xmlElements(xml);
    }
	
}
